package org.example

import org.apache.spark.sql.SparkSession

object yun09 {
  def main(args: Array[String]): Unit = {
    //SPARK运行环境
    val spark = SparkSession.builder().master("local[*]").appName("spark").getOrCreate()
    val sc = spark.sparkContext
    //创建rdd 不指定分区就会打散
    val rdd1 = sc.makeRDD(List(1,5,3,7,6),1)
    val rdd2 = sc.parallelize(List(('a',90),('b',150),('c',56),('b',150)))
    //spak数据分析方法
    val rdd3 = sc.makeRDD(List(1,2,3,4,5),1)
    //交集
  //  rdd1.intersection(rdd3).foreach(println)
    //并集union
  //  rdd1.union(rdd3).foreach(println)
    //差集
  //  rdd1.subtract(rdd3).foreach(println)
    //zip拉链  分区数要一致 形成元组(key,value)
  //  rdd1.zip(rdd3).foreach(println)
      //笛卡尔积 cartesian 1跟3中的每个原始都会重新合成一组 5*5=25组
  //  rdd1.cartesian(rdd3).foreach(println)
  // fillter rdd2中筛选出大于90的数据
  //  rdd2.filter(tp => tp._2 >=90).foreach(println)
  // 简化
  //  rdd2.filter(_._2 >=90).foreach(println)
  //去重distinct
  //  rdd2.distinct().foreach(println)

  //输出结果
  //  rdd1.foreach(println)
  //  rdd2.collect().foreach(println)

    sc.stop()

  }

}
